Search Picker topic
Search Picker
Search Picker package is useful when we need to display an list of items, search based on a query and select one of them. There is possible customizations such as passing custom item, separator, error and empty widgets.
Widgets
Within the search_picker
package you can call the showSearchPickerBottomSheet
function in order
to show your items list and to perform query searches.
showSearchPickerBottomSheet
The showSearchPickerBottomSheet
function is a convenience function for displaying an ItemPicker
modal sheet with some pre-configured options. It requires a context
, title
, hintText
, retryText
, selectedItem
, function that return a generic type onItemTap
, service
.
Another optional customization can be applied by using the itemBuilder
, separatorBuilder
, errorBuilder
or emptyBuilder
.
How to use
In order to start using this package you need to add the dependency to the widget_toolkit
in
your pubspec.yaml
file.
widget_toolkit: any
After that you can import the package with the following line:
import 'package:widget_toolkit/search_picker.dart';
additional step is the requirement to add the WidgetToolkitTheme and SearchPickerTheme as a extension to your ThemeData.
as an example:
//theme
//...
extensions: [
darkMode ? WidgetToolkitTheme.dark : WidgetToolkitTheme.light,
darkMode ? SearchPickerTheme.dark : SearchPickerTheme.light,
]
//..
Complete example for showSearchPickerBottomSheet usage:
showSearchPickerBottomSheet<DataModel>(
context: context,
title: title,
hintText: hintText,
retryText: retryText
separatorBuilder: (index) => _buildCustomSeparator(index),
itemBuilder: (model) =>
_buildCustomListItem(model),
errorBuilder: (error) => _buildErrorWidget(error),
emptyBuilder: () => _buildEmptyWidget(),
selectedItem: _selectedItem,
onItemTap: (item) => setState(() {
_selectedItem = item;
}),
service: DataService(),
showEmptyWidgetWhenNoResultsAreFound: true,
);